home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 4 / Meeting Pearls Vol. IV (1996)(GTI - Schatztruhe)[!].iso / Pearls / libs / MCC_Busy / Developer / Oberon / Source / BusyDemo.mod
Text File  |  1996-09-11  |  4KB  |  125 lines

  1. (**********************************************************************
  2. :Program.       BusyDemo.mod
  3. :Contents.      Example for Busy.mcc
  4. :Contents.      Busy.mcc (c) 1994-96 by Klaus Melchior [kmel]
  5. :Author.        Frank Duerring [fjd]  (fd@marvin.unterland.de)
  6. :Address.       Hauptstraße 23
  7. :Address.       74199 Untergruppenbach
  8. :Telefon.       07131/970152
  9. :Copyright.     Frank Dürring
  10. :Language.      Oberon 2
  11. :Last Change.   18 Feb 1996
  12. :Translator.    AmigaOberon v3.20d
  13. ***********************************************************************)
  14.  
  15. MODULE BusyDemo;
  16.  
  17.  IMPORT    d         := Dos,
  18.            u         := Utility,
  19.            e         := Exec,
  20.            mui       := Mui,
  21.            mb        := MuiBasics,
  22.            busy      := mccBusy,
  23.            sys       := SYSTEM;
  24.  
  25.  VAR
  26.  
  27.         app,
  28.         window,
  29.         btMove,
  30.         byMove  : mui.Object;
  31.  
  32.         signals : LONGSET;
  33.         running : BOOLEAN;
  34.  
  35. PROCEDURE MUIFail (obj:mui.Object; s:ARRAY OF CHAR);
  36.  BEGIN
  37.   IF obj # NIL THEN
  38.     mui.DisposeObject(obj);
  39.   END;
  40.   IF d.PutStr(s) = 0 THEN END;
  41.     HALT(20);
  42.   END MUIFail;
  43.  
  44. BEGIN
  45.  
  46.     mb.ApplicationObject(mui.aApplicationTitle,       sys.ADR("Show_BusyClass"),
  47.                          mui.aApplicationVersion,     sys.ADR("BusyDemo 1.0 (18.02.96)"),
  48.                          mui.aApplicationCopyright,   sys.ADR("©1993-96, kMel Klaus Melchior"),
  49.                          mui.aApplicationAuthor,      sys.ADR("Klaus Melchior/Frank Dürring (Oberon)"),
  50.                          mui.aApplicationDescription, sys.ADR("Demonstrates the busy class."),
  51.                          mui.aApplicationBase,        sys.ADR("SHOWBUSY"),
  52.                          u.end );
  53.  
  54.                 mb.SubWindow;
  55.                 mb.WindowObject(mui.aWindowTitle, sys.ADR("BusyClass"),
  56.                                 mui.aWindowID   , sys.VAL(LONGINT,"BUSY"),
  57.                                 u.end);
  58.  
  59.                         mb.WindowContents; mb.VGroup;
  60.  
  61.                                 (*** create a busy bar with a gaugeframe ***)
  62.  
  63.                                 mb.Child; mb.VGroup; mb.GroupFrameT("Speed: 20");
  64.                                   mb.Child; busy.mccBusyObject(busy.aBusySpeed, 20);
  65.                                             mb.end;
  66.                                 mb.end; (* VGroup *)
  67.  
  68.                                 mb.Child; mb.VSpace(8);
  69.  
  70.                                 mb.Child; mb.VGroup; mb.GroupFrameT("Speed: User");
  71.                                   mb.Child; busy.BusyBar;
  72.                                 mb.end; (* VGroup *)
  73.  
  74.                                 mb.Child; mb.VSpace(8);
  75.  
  76.                                 mb.Child; mb.VGroup; mb.GroupFrameT("Speed: Manually");
  77.                                   mb.Child; busy.mccBusyObject(busy.aBusySpeed, busy.vBusySpeedOff,u.end);
  78.                                             byMove := mb.End();
  79.                                   mb.Child; btMove := mb.KeyButton("Move ...", "m");
  80.                                 mb.end; (* VGroup *)
  81.                         mb.end; (* VGroup *)
  82.                 window := mb.End();
  83.  
  84.     app := mb.End();
  85.     IF app = NIL THEN MUIFail(window, "Failed to create Application.\n") END;
  86.  
  87.     (*** generate notifies ***)
  88.  
  89.     mui.DoMethod(window, mui.mNotify, mui.aWindowCloseRequest, e.true,
  90.                  app, 2,
  91.                  mui.mApplicationReturnID, mui.vApplicationReturnIDQuit);
  92.  
  93.     mui.DoMethod(btMove, mui.mNotify, mui.aTimer, mui.vEveryTime,
  94.                  byMove, 2,
  95.                  busy.mBusyMove, e.true);
  96.  
  97.     (*** ready to open the window ... ***)
  98.  
  99.     mb.Set(window,mui.aWindowOpen, e.true);
  100.  
  101.   running := TRUE;
  102.  
  103.   WHILE running DO
  104.  
  105.     CASE mui.DOMethod(app, mui.mApplicationInput, sys.ADR(signals), u.end) OF
  106.       | mui.vApplicationReturnIDQuit     : running := FALSE;
  107.     ELSE END;
  108.  
  109.     IF running & (signals # LONGSET{}) THEN sys.SETREG(0, e.Wait(signals) ) END;
  110.  
  111.   END;
  112.  
  113.   mb.Set(window, mui.aWindowOpen, e.LFALSE);
  114.  
  115. CLOSE
  116.  
  117.   IF app # NIL THEN
  118.     mui.DisposeObject(app);
  119.   ELSE IF window # NIL THEN
  120.          mui.DisposeObject(window)
  121.        END;
  122.   END;
  123.  
  124. END BusyDemo.
  125.